import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, __dirname); // 根据 mode 来判断当前是何种环境
  // console.log(env, '------');
  // console.log(__dirname, '---11111---');
  return {
    base: env.VITE_MODE === 'production' ? './' : '/',
    plugins: [vue()],
    resolve: {
      alias: {
        "@": path.resolve(__dirname, "./src"),
        "components": path.resolve(__dirname, './src/components')
      }
    },
    // 开发服务配置
    server: {
      host: '0.0.0.0', // 默认localhost
      port: 9527,
      open: true,
      proxy: {
        // 带选项写法（对象）
        '/api': {
          target: env.VITE_BASE_API,                      // 从环境变量文件取值
          changeOrigin: true,                             // 支持跨域
          rewrite: (path) => path.replace(/^\/api/, ''),  // 路径重写
        },
        // 代理 websockets 或 socket.io 写法：ws://localhost:5173/socket.io -> ws://localhost:5174/socket.io
        '/socket.io': {
          target: 'ws://localhost:5174',
          // 支持 websocket
          ws: true,
        },
      }
    },
    build: {
      outDir: "dist",      // 默认dist，打包后输出文件
      // sourcemap: false,    // 默认false，是否构建sourcemap文件（生产不需要）
      // minify: 'terser',     // vite默认构建是esbuild,需安装terser npm i -D terser
      reportCompressedSize: false,  // 禁用 gzip 压缩大小报告，可略微减少打包时间
      terserOptions: {
        // 生产环境移除console、debugger
        compress: {
          drop_console: true,   // 默认false
          drop_debugger: true,  // 默认true
        },
      },
    }

  }
})
